Object Ownership in Program Verification

نویسندگان

  • Werner Dietl
  • Peter Müller
چکیده

Dealing with aliasing is one of the key challenges for the verification of imperative programs. For instance, aliases make it difficult to determine which abstractions are potentially affected by a heap update and to determine which locks need to be acquired to avoid data races. Object ownership was one of the first approaches that allowed programmers to control aliasing and to restrict the operations that can be applied to a reference. It thus enabled sound, modular, and automatic verification of heap-manipulating programs. In this paper, we present two ownership systems that have been designed specifically to support program verification—Universe Types and Spec#’s Dynamic Ownership— and explain their applications in program verification, illustrated through a series of Spec# examples.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Selective Ownership: Combining Object and Type Hierarchies for Flexible Sharing

Most ownership systems enforce a tree topology on a program’s heap. The tree topology facilitates many aspects of programming such as thread synchronization, memory management, and program verification. Ownership-based verification techniques leverage the tree topology of an ownership system (and hence the fact that there exists a single owner) to restore sound modular reasoning about invariant...

متن کامل

Ownership Type Systems and Dependent Classes

Ownership type systems structure the heap and enforce restrictions on the behavior of a program. Benefits of ownership type systems include simplified program verification, absence of race conditions and deadlocks, and enforcement of architectural styles. Dependent classes are a generalization of virtual class systems that allows one class to depend on multiple objects. Dependency is expressed ...

متن کامل

2007 State of the Universe Address

This position paper summarizes recent developments related to the Universe type system and suggests directions for future work. 1. Universe Type System The Universe type system is an ownership type system that enforces the owner-as-modifier discipline. In this section, we summarize recent developments and suggest future work to improve the expressiveness and formal foundation. 1.1 Expressivenes...

متن کامل

Modular invariants for layered object structures

Classical specification and verification techniques support invariants for individual objects whose fields are primitive values, but do not allow sound modular reasoning about invariants involving more complex object structures. Such non-trivial object structures are common, and occur in lists, hash tables, and whenever systems are built in layers. A sound and modular verification technique for...

متن کامل

Tunable Universe Type Inference

Object ownership is useful for many applications such as program verification, thread synchronization, and memory management. However, even lightweight ownership type systems impose considerable annotation overhead, which hampers their widespread application. This paper address this issue by presenting a tunable static type inference for Universe types. In contrast to classical type systems, ow...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2013